package com.heima.crm.controller;

import com.heima.crm.common.result.PageResult;
import com.heima.crm.common.result.Result;
import com.heima.crm.pojos.dtos.DeptDTO;
import com.heima.crm.pojos.entity.SysDept;
import com.heima.crm.service.DeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/system/dept")
@Slf4j
public class SysDeptController {

    @Autowired
    private DeptService deptService;

    /**
     * 动态模糊分页查询部门管理
     * @param deptDTO
     * @return
     */
    @GetMapping("/list")
    public Result deptPageList( DeptDTO deptDTO){

        System.out.println(deptDTO);
        log.info("动态模糊分页查询部门管理:{}",deptDTO);
        PageResult pageResult = deptService.deptPageList(deptDTO);
        return Result.success(pageResult);
    }


    /**
     * 添加部门
     * @param sysDept
     * @return
     */
    @PostMapping("/add")
    public Result addDept(@RequestBody SysDept sysDept){
        log.info("添加部门:{}",sysDept);
       return deptService.addDept(sysDept);
    }

    /**
     * 修改部门
     * @param sysDept
     * @return
     */
    @PutMapping("/update")
    public Result updateDept(@RequestBody SysDept sysDept){
        log.info("修改部门:{}",sysDept);
        return deptService.updateDept(sysDept);
    }

    /**
     * 部门修改数据回显
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    public Result<SysDept>selectById(@PathVariable Long id){
        log.info("数据回显:{}",id);
       SysDept sysDept= deptService.selectById(id);
       return Result.success(sysDept);
    }


    @DeleteMapping("/delete/{id}")
    public Result delDept(@PathVariable Long id){
        log.info("删除部门:{}",id);
        return deptService.delDept(id);

    }

    /**
     * 查询所有的部门
     * @return
     */
    @GetMapping("/findDept")
    public Result findDept(){
        log.info("查询所有部门");
        return deptService.findDept();
    }

    /**
     * 根据部门id查询所有的用户
     * @param deptId
     * @return
     */
    @GetMapping("/findUser/{deptId}")
    public Result findUser(@PathVariable Long deptId){
        return deptService.findUser(deptId);
    }

    /**
     * 部门启停
     * @param status
     * @param id
     * @return
     */
    @PostMapping("/{status}/{id}")
    public Result startOrStop(@PathVariable Integer status,@PathVariable Long id){
        log.info("部门启停:{},{}",status,id);
       return deptService.startOrStop(status,id);

    }
}
